package Interfaz;

import javax.swing.JButton;
import javax.swing.JPanel;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

import net.miginfocom.swing.MigLayout;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

import Atxy2k.CustomTextField.RestrictedTextField;
import LogicaDeNegocio.GestionDeTitulares;
import LogicaDeNegocio.GestionSistema;
import Modelo.Entidades.TipoDocumento;

public class EmitirLicencia extends JPanel {
	private GestionSistema admSistema = GestionSistema.getInstance();
	private GestionDeTitulares admTitular = GestionDeTitulares.getInstance();
	
	private JPanel panelCentral;
	private JTextField textFieldNumeroDocumento;
	private RestrictedTextField restrictedNumeroDoc;
	private JTextField textFieldApellido;
	private JTextField textFieldNombre;
	private JTextField textFieldDireccion;
	private JComboBox cbTipoDocumento;
	private JButton btnBuscar;
	private JComboBox cbClase;
	private JComboBox cbGrupoSanguineo;
	private JCheckBox checkSi;
	private JTextPane textPane;
	private JTextField textFieldFecha;
	
	/**
	 * Create the panel.
	 */
	public EmitirLicencia() {
		setLayout(new BorderLayout());
		setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "Nueva Licencia", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		
		JPanel buttonPane = new JPanel();
		buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
		add(buttonPane,BorderLayout.SOUTH);
		
		JButton guardarButton = new JButton("Guardar");
		guardarButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				try {
					//TODO GABI/BRUNO crear metodo en GestionDeLicencias
					//admLicencia.CrearLicencia(datossss);
				} catch (Throwable e) {
					new ErrorEstandar("");
				}
				
			}
		});
		guardarButton.setActionCommand("Guardar");
		buttonPane.add(guardarButton);
		
		panelCentral = new JPanel();
		panelCentral.setLayout(new MigLayout("", "[][grow][]", "[][][][][][][][][][grow]"));
		this.add(panelCentral,BorderLayout.CENTER);
		
		JLabel lblTipoDocumento = new JLabel("Tipo documento");
		panelCentral.add(lblTipoDocumento, "cell 0 0,alignx trailing");
		
		cbTipoDocumento = new JComboBox();
		panelCentral.add(cbTipoDocumento, "cell 1 0,growx");
		cbTipoDocumento.setModel(new DefaultComboBoxModel(admSistema.getTipoDocumentos()));
		
		JLabel lblNumeroDocumento = new JLabel("Numero documento");
		panelCentral.add(lblNumeroDocumento, "cell 0 1,alignx trailing");
		
		textFieldNumeroDocumento = new JTextField();
		panelCentral.add(textFieldNumeroDocumento, "cell 1 1,growx");
		textFieldNumeroDocumento.setColumns(10);
		
		restrictedNumeroDoc = new RestrictedTextField(textFieldNumeroDocumento);
		restrictedNumeroDoc.setLimit(8);
		restrictedNumeroDoc.setOnlyNums(true);
		
		btnBuscar = new JButton("Buscar");
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				TipoDocumento tipoDoc = (TipoDocumento) cbTipoDocumento.getSelectedItem();
				String numeroDocumento = textFieldNumeroDocumento.getText();
				//TODO GABI/BRUNO hacer metodo para devolverme un titular por tipoDoc y NumeroDoc
				//Titular titular = admTitular.getTitular(tipoDoc,numeroDocumento);
				
				//TODO setear los campos y habilitar los campos de clase y donante de organos.
			}
		});
		panelCentral.add(btnBuscar, "cell 2 1");
		
		JLabel lblApellido = new JLabel("Apellido");
		panelCentral.add(lblApellido, "cell 0 2,alignx trailing");
		
		textFieldApellido = new JTextField();
		panelCentral.add(textFieldApellido, "cell 1 2,growx");
		textFieldApellido.setColumns(10);
		textFieldApellido.setEditable(false);
		
		JLabel lblNombre = new JLabel("Nombre");
		panelCentral.add(lblNombre, "cell 0 3,alignx trailing");
		
		textFieldNombre = new JTextField();
		panelCentral.add(textFieldNombre, "cell 1 3,growx");
		textFieldNombre.setColumns(10);
		textFieldNombre.setEditable(false);
		
		JLabel lblFechaDeNacimiento = new JLabel("Fecha de Nacimiento");
		panelCentral.add(lblFechaDeNacimiento, "cell 0 4,alignx trailing");
		
		textFieldFecha = new JTextField();
		panelCentral.add(textFieldFecha, "cell 1 4,growx");
		textFieldFecha.setColumns(10);
		textFieldFecha.setEditable(false);
		
		JLabel lblDireccion = new JLabel("Direccion");
		panelCentral.add(lblDireccion, "cell 0 5,alignx trailing");
		
		textFieldDireccion = new JTextField();
		panelCentral.add(textFieldDireccion, "cell 1 5,growx");
		textFieldDireccion.setColumns(10);
		textFieldDireccion.setEditable(false);
		
		JLabel lblClase = new JLabel("Clase");
		panelCentral.add(lblClase, "cell 0 6,alignx trailing");
		
		cbClase = new JComboBox();
		panelCentral.add(cbClase, "cell 1 6,growx");
		cbClase.setModel(new DefaultComboBoxModel(admSistema.getClasesLicencias()));
		cbClase.setEnabled(false);
		
		JLabel lblGrupoSanguineo = new JLabel("Grupo Sanguineo");
		panelCentral.add(lblGrupoSanguineo, "cell 0 7,alignx trailing");
		
		cbGrupoSanguineo = new JComboBox();
		panelCentral.add(cbGrupoSanguineo, "cell 1 7,growx");
		cbGrupoSanguineo.setModel(new DefaultComboBoxModel(admSistema.getGrupoSanguineo()));
		cbGrupoSanguineo.setEnabled(false);
		
		JLabel lblDonanteDeOrganos = new JLabel("Donante de organos");
		panelCentral.add(lblDonanteDeOrganos, "cell 0 8");
		
		checkSi = new JCheckBox("Si");
		panelCentral.add(checkSi, "cell 1 8");
		checkSi.setEnabled(false);
		
		JLabel lblObservaciones = new JLabel("Observaciones");
		panelCentral.add(lblObservaciones, "cell 0 9");
		
		JScrollPane scrollPane = new JScrollPane();
		panelCentral.add(scrollPane, "cell 1 9,grow");
		
		textPane = new JTextPane();
		scrollPane.setViewportView(textPane);
		textPane.setEditable(false);
	}

}
